package top.spring.study.service;

import org.springframework.beans.factory.annotation.Autowired;
import top.spring.study.chainOfResponsibility.MyFilter;

import java.util.List;

/**
 * 策略模式的使用，需要使用一个类，判断具体使用哪种策略
 * 策略模式一般配合模板模式，把统一的处理流程在抽象策略类中实现。 以及指定需要子类实现的接口或者重写方法
 */
public abstract class AbstractInvoiceApplyStrategy {


    /**
     * 自动注入实现 MyFilter 的类
     */
    @Autowired
    public List<MyFilter> allFilters;
    

    public abstract void initFilters(List<MyFilter> filters);

    /*public void initFilters(List<MyFilter> filters) {

    }*/

    /*@Autowired
    public void setAllFilters(List<MyFilter> allFilters) {
        this.allFilters = allFilters;
        initFilters(allFilters);
    }*/
}
